package com.itheima.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.itheima.constant.MessageConstant;
import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.entity.Result;
import com.itheima.exception.CheckItemException;
import com.itheima.pojo.CheckItem;
import com.itheima.service.CheckItemService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController

@RequestMapping("/checkitem")
public class CheckItemController {

    @Reference
    private CheckItemService checkItemService;


        /*
         * 1.新建项
         * @author qiao
         * @date 2020/2/23-21:06
         * @param null
         * @return
         */
    @RequestMapping("/add.do")
        //返回的是 错误或正确的信息  提交给页面   参数是提交的新建信息
                    //@RequestBody  数据是JSON  类型
    public Result add(@RequestBody CheckItem checkItem){
        //因为网络提交    有  正确 和错误信息
        try {
            checkItemService.add(checkItem);
            //提交成功
            return  new Result (true, MessageConstant.ADD_CHECKITEM_SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            //提交失败
            return new Result(false,MessageConstant.ADD_CHECKITEM_FAIL);
        }

    }


            /*
            * 2.分页操作
             * @author qiao
             * @date 2020/2/23-21:06
             * @param queryPageBean
             * @return com.itheima.entity.PageResult
             */
    @RequestMapping("/findPage.do")
    public PageResult findPage(@RequestBody QueryPageBean queryPageBean){

       return checkItemService.findPage(queryPageBean);
    }


    /*
     * 3. 删除内容操作
     * @author qiao
     * @date 2020/2/24-14:03
     * @param null
     * @return
     */

    @RequestMapping("/delete.do")
    public Result delete(Integer id){
        try {  //没有与检查组管理 可以删除
            checkItemService.delete(id);
        } catch (CheckItemException e) {
            e.printStackTrace();
            return new Result(false,e.getMessage());
        }catch (Exception e) {
            e.printStackTrace();
        }
        //删除成功
        return  new Result(true,MessageConstant.DELETE_CHECKITEM_SUCCESS);
    }

        
        /*
         * 4. 编辑操作
         * @author qiao
         * @date 2020/2/24-20:26
         * @param id
         * @return com.itheima.entity.Result
         */

        //4.1 编辑框  数据回显查询
            @RequestMapping("/findById.do")
            public Result findById(Integer id){

                CheckItem checkItem = checkItemService.findById(id);

                return new Result(true,"",checkItem);
            }
        //4.2 编辑数据
            @RequestMapping("/edit.do")
            public Result edit(@RequestBody CheckItem checkItem){
                checkItemService.edit(checkItem);
                return Result.success(MessageConstant.EDIT_CHECKITEM_SUCCESS);
            }

            /*
             * 5.新建检查组
             * @author qiao
             * @date 2020/2/25-15:01
             * @param null
             * @return
             */

            //5.1 在窗口弹出之前   对项目  进行查询   查询所有 项 没有参数
            @RequestMapping("/findAllSins.do")
            public Result findAllSins(){
                List<CheckItem> checkItems = checkItemService.findAllSins();
                return Result.success("",checkItems);
            }



}
